@L|}6CD l0C)HCC WhL/h `CmCDiD`  R@W1  Y0@R !L` D  C D     )16CS S)  C)D1 p p 0 C9DI pCDL~CiCDiD` D  C D     )16CS S)  C)D1 p p }0 C9DI pCDL~CiCDiD` DD˙` d J)L !}D L(( LL()  L| L( S LH 0p n  } CY?  q  L L  ` )} `A! d߰")-݆ "  $G@LLL&0") $G% }H0 3S8`G ȱG ȱG   Gȭ Gȭ GG}GHiH8(()) G$H% `(0 })8` d)L ݆ & LGȘ ݆LL d  ! LL d)N>Q  HH) }  hyhyB q L> Lm JJ  Ln*` dB%' }8  H H` 1 { LL   !L     Hh SY?  q  1L }  !? S   q 1 L   Ll  Lg E`L   !L)  q 1L}) `L0AM݊L݉ ML  N݆LLLNLMLHG!@}1F GȱGLLEEȩÑEȑEEȑE Ed E7EȩE  q} L !,0,0SGɛ L 1 !L EHEh W G gLLSROTCES EERF } G) *Gȩ GȽG GȌd q q G`  8   0G  `D}CEDC0X:Ȣ Y ȱC* ? 0.. , 0%n ?A[ 0 : L`L  `, 0`Y}`piH n0)բY? 08`0 }  0$L GGȽG L `8L`L}8`  05G)݁,G)ȱGȱGHh0})Hh` B! 8`8iiiLE`}E8FEh( l0`ɃLL L8^~jj8jHi hEEEiEȱEiE` dTE} H8EEȱEEȩEh J E8   . m  i`LI!)E1FR}1LJ舩9GIH`LJJ`HGHh l`} S gL   8 rii `дCDCG W  }C  Lq` X٨`DOS SYS IIIIIIIIIIIIIIIC`0 ߩ0}}}  |||DDOS DOSDOS SYS }}}}CDOS SYS*+DUP SYS)UIOMAC M65~SYSEQU M65 LIBRARY M65KDMACROS M65KOALA DRVJOYSTIC}KDRV 0`BDELV !B }`LVUQ   ]   TU J ]L!T  #      TU  } L ? .  t`GBJ V~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI   0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DELV䌚 !B y`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J V (` 9 V⪍ ઍ  -'}LLu DEHILV 9 .l 9 .l  `` s$B VBH(}I|DE V BLV nB,DE J V* \*` B V BLVDEHI BLVL)}1u H232435; 1 ;  hh@2 e1i1LHҍ 00) 08 109hh@ Ҡ2e*}1i1232435ޥ<<8} 3E:}DISK OPERATING SYSTEM II VERSION 2.0SCOPYRIGHT 1980 ATARIA. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDGE J. D,}UPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRESSF. LOCK F-}ILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES9!&x#!7&p))'&X*./)L''-؆莟.}R'S  vW DEHHI 1A#! @ ~0ɛ8A0.) ȅ 1 1i/}il ! 1L NO SUCH ITEMSELECT ITEM OR FOR MENU! 0 .{z:*{}.|~ 1 0 00}JB 18L^%|DLl%DIRECTORY--SEARCH SPEC,LIST FILE? # 0 0 n&|D! 1L NOT A DISK FILE1}N !B 1L " 1 !BDED:}:1BJ|DE 1DEBH2}I 1 h0ߢ 0.  0?詛 1 ~0YЛ 1 "L<" "L 3} BL1TYPE "Y" TO DELETE...DELETE FILE SPECCOPY--FROM, TO?OPTION NOT ALLOWED COPYING---DN:4}# 0|D .L$A#B#C#JB|DE 1BHIDD#E 1D#0: B5} 1L B#C#C#B# B 1N#$0SYS1}:e#D# d# D# .d#ȽD# d# 𩛙d#X# 1,A#6}PdD#ELO- A.BJdD#E 1 1HH 0hh|DL^%1}:e# Lt% e#dD#EL%7} 1 0 . .0% 1L WILD CARDS NOT ALLOWED IN DESTINATION 0 A.|K@C}//3Hu ξL/L DRIVE TO WRITE DOS FILES TO?WRITING NEW DOS FILESTYPE "Y" TO WRITE DOS TO DRIVE 1.?}D1:DOS.SYSERROR - NOT VERSION 2 FORMAT. , &* բ( 1L `[) 0NΞ 0 L1M) 1@} L BAD LOAD FILELOAD FROM WHAT FILE?) 0 0#B 1L WHAT FILE TO LOCK?) 0 0$B 1L WHAT FILE TO UNLOCK?DUA}P DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO USE PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV. h  ,B}  `)  <0 2 2 0  ,   ,,ޢ* 1L ,K* 1 ~0 0C}FINSERT BOTH DISKS, TYPE RETURNERROR - DRIVES INCOMPATIBLE., 1 ~038  , 1L D}, &*  Lz+, 0 , 1 ~0 + Y,0!,0 ,L+ ,mm  v,"ǭE}0Ξ, 05,Lt+L +,Hh` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNF}INSERT DESTINATION DISK,TYPE RETURN`    `L,8,0( rG}L1(`ߢ) 1* 1 ~0Y`hhL S SL1) 8`NAME OF FILE TO MOVE?- 0 0|DLtH}% A., 1 <0 0 .@L# .BJ 1  DEHIB V L1 ,5 1 <0,L. I} JB|,A#Pd#DE 1 HI BDEHHII 1 B 1 , 1 <0,0Lf- B VJ},A#P, 1 <0 0L#L ߢ) 1* 1 ~0Yj383}mm ݭK}}`8}``|* ? ɛ,`|:(|/ 1L `DESTINATION CANT L}BE DOS.SYS0 0H{ $22Δ $28/L /) $2 Π $2 0 ξM}hAΞB,0 J 1 BޝDEHI,HDE 1HIHIDELSAVE-N}GIVE FILE,START,END(,INIT,RUN)O X0 1`BDEPHI V` X0H 1 L O}0 0 1L0`PLEASE TYPE 1 LETTER,0`hhL <0 1L0LA1 ,;ɛ7,"ɛ:ݦ1ݥP}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{Q}NAME TOO LONG B VL ` L1I H1EӝDL1|mDiE` V0`8d/8 i:"2!22 1R} L ERROR- 128ɛ+,' 20*.. өw2 1``2TOO MANY DIGITSINVALIDS} HEXADECIMAL PARAMETER800 0 8 00`,0'D800H,ɛh`2L1NEED D1 THRU D4uT} HEXADECIMAL PARAMETER800 0 8 00`,0'D800H,ɛh`2L1NEED D1 THRU D4u)AIOMAC.LIB -- OSS system I/O macrosAA Support MacrosA 10IOCB2 AYou must include SYSEQU.M65 ahead of thV}is!!AX;$6X; These macros are called by the actual I/O macros.9X; to perform the rudimentary register load functions.W}8X;BX;LX; MACRO: @CHVX;`6X; Loads IOCB number (parameter 1) into X register.jX;t 7 then a memory location1X; is assumed toY} contain the channel number.X; @CH   Q T?T?T?T?>  $> (X;2X;<X; MACZ}RO: @CVFX;P:X; Loads Constant or Value into accumultor (A-register)ZX;d+X; If value of parameter 1 is 0-255, @CVn+X; [}assumes it's an (immediate) constant.xX;'X; Otherwise the value is assumed to+X; be a memory location (non-zero page).\}X;X;X; @CV   Q> Q X;X;X;X;"X; MACRO: @FL,X;65X; @FL is used to e]}stablish a filespec (file name)@X;J-X; If a literal string is passed, @FL willT'X; generate the string in line, jump^&X;^} around it, and place its addressh/X; in the IOCB pointed to by the X-register.rX;|(X; If a non-zero page label is passed_}*X; the MACRO assumes it to be the label.X; of a valid filespec and uses it instead.X;X;X; @FL   `} !   @F = Q>4@F PICBADR9 Q>5@FPICBADR9 Q>4  PICBADR9& Q>5 0PICBADR9:Da}NA XIO macroAXX;bX; MACRO: XIOlX;v/X; FORM: XIO cmd,ch[,aux1,aux2][,filespec]X;%X; ch is given as in theb} @CH macro3X; cmd, aux1, aux2 are given as in the @CV macro+X; filespec is given as in the @FL macroX;5X; performs fc}amiliar XIO operations with/for OS/A+X;/X; If aux1 is given, aux2 must also be given8X; If aux1 and aux2 are omitted, d}they are set to zero1X; If the filespec is omitted, "S:" is assumedX; XIO  3 % AXIO: wrong number oe}f argumentsA  @CH   @CV *PICCOM9;; COMMAND4  > @CV H PICAUX19R @CV \ PICAUX29fpf}Q>z PICAUX19 PICAUX29 3 @FL AS:A @@IO @FL @@@IO: CIOA g} OPEN macroAX; X; MACRO: OPEN X; (X; FORM: OPEN ch,aux1,aux2,filespec$ X;. %X; ch is given as in the @CH macro8 1h}X; aux1 and aux2 are given as in the @CV macroB +X; filespec is given as in the @FL macroL X;V 1X; will attempt to open the i}given file name on` /X; the given channel, using the open "modes"j X; specified by aux1 and aux2t X;~ OPEN   &j} AOPEN: wrong number of argumentsA    XIO COPN= = = =   XIO COPN= = = =    k} A BGET and BPUT macrosA X; X; MACROS: BGET and BPUT X; X; FORM: BGET ch,buf,len X; BPUT ch,buf,lel}n( X;2 %X; ch is given as in the @CH macro< .X; len is ALWAYS assumed to be an immediateF 1X; and actual value...never a mm}emory addressP /X; buf must be the address of an appropriateZ X; buffer in memoryd X;n +X; puts or gets length bytes to/fn}rom thex 0X; specified buffer, uses binary read/write X; X; X; first: a common macro X; @GP @CH  Q> o} PICCOM9 Q>4  PICBADR9 Q>5  PICBADR9 Q>4  PICBLEN9 Q>5  PICBLEN9"  CIO, 6 X;@ Bp}GET J  T ' ABGET: wrong number of parametersA^ h @GP = = =CGBINRr |  X; BPUT   ' ABq}PUT: wrong number of parametersA  @GP = = =CPBINR   X; A PRINT macroA X; X; MACRO: PRINT r}X; (X; FORM: PRINT ch[,buffer[,length]] X; !X; ch is as given in @CH macro& (X; if no buffer, prints just a RETURN0 %X;s} if no length given, 255 assumed: X;D 8X; used to print text. To print text without RETURN,N -X; length must be given. Seet} OS/A+ manualX X;b 2X; EXCEPTION: second parameter may be a literall .X; string (e.g., PRINT 0,"test"), in whichv -X; caseu} the length (if given) is ignored. X; PRINT  3  ( APRINT: wrong number of parametersA    v}  !   @IO = @GP =@IO= =CPTXTR    @GP = ==CPTXTR  @GP = w}= =CPTXTR  * 4 ! > @IO H @GP =@IO==CPTXTRR \ f p X;z A INPUT macroA X; X; MACRO:x} INPUT X; X; FORM: INPUT ch,buf,len X; %X; ch is given as in the @CH macro )X; buf MUST be a proper buffer addressy} 6X; len may be omitted, in which case 255 is assumed X; ,X; gets a line of text input to the given 'X; buffer, maximuz}m of length bytes X; INPUT  3 ( AINPUT: wrong number of parametersA$  .@GP = =={}CGTXTR8B@GP = = =CGTXTRLV`jA CLOSE macroAtX;~X; MACRO: CLOSEX;X; FORM: CLOSE ch|}X;%X; ch is given as in the @CH macroX;X; closes channel chX; CLOSE   ( ACLOSE: wrong number of par}}ametersA @CH  Q>CCLOSE  PICCOM9 CIO(2X;<-X;;;;;;;;;;; END OF IOMAC.LIB ;;;;;;;;;;;;FX; of parv #AOSS SYSTEM EQUATES FOR ATARIAX;X; FILE = #DN:SYSEQU.ASMX;X;X; I/O CONTROL BLOCK EQUATES$X;)SAV }EPC ;; SAVE CURRENT ORG+X;.@;;START OF SYSTEM IOCBS3IOCB8X;B-ICHID ;;DEVICE HANDLER IS (SET BY OS)L)ICDN }O ;;DEVICE NUMBER (SET BY OS)VICCOM ;;I/O COMMAND`ICSTA ;;I/O STATUSjICBADR ;;BUFFER ADDRESSt&ICPU }T ;;DH PUT ROUTINE (ADR-1)~ICBLEN ;;BUFFER LENGTHICAUX1 ;;AUX 1ICAUX2 ;;AUX 2ICAUX3 ;;AUX }3ICAUX4 ;;AUX 4ICAUX5 ;;AUX 5ICAUX6 ;;AUX 6X;'IOCBLEN IOCB;;LENGTH OF ONE IOCBX; X; IOC }B COMMAND VALUE EQUATESX;COPN;;OPEN CGBINR;;GET BINARY RECORD CGTXTR;;GET TEXT RECORD CPBINR ;;PUT } BINARY RECORDCPTXTR ;;PUT TEXT RECORD(CCLOSE ;;CLOSE 2CSTAT ;;GET STATUS<X;F7X; DEVICE DEPENDENT COMMAND }EQUATES FOR FILE MANAGERPX;ZCREN ;;RENAMEdCERA!;;ERASEnCPRO#;;PROTECTxCUNP$;;UNPROTECTCPOINT%;;PO }INTCNOTE&;;NOTEX;X; AUX1 VALUES REQD FOR OPENX;OPIN;;OPEN INPUTOPOUT;;OPEN OUTPUTOPUPD ;;O }PEN UPDATEOPAPND ;;OPEN APPENDOPDIR;;OPEN DIRECTORYX;X;X; EXECUTE FLAG DEFINESX;#EXCYES };; EXECUTE IN PROGRESS"+EXCSCR@;; ECHO EXCUTE INPUT TO SCREEN,%EXCNEW;; EXECUTE START UP MODE6$EXCSUP ;; COLD ST }ART EXEC FLAG@X;JX; MISC ADDRESS EQUATESTX;^CPALOC ;; POINTER TO CP/Ah#WARMST;; WAR, START (0=COLD)r#MEMLO };; AVAIL MEM (LOW) PTR|%MEMTOP;; AVAIL MEM (HIGH) PTR1APPMHI;; UPPER LIMIT OF APPLICATION MEMORY%INITADR };; ATARI LOAD/INIT ADR!GOADR;; ATARI LOAD/GO ADR(CARTLOC;; CARTRIDGE RUN LOCATIONCIOV;;CIO ENTRY ADR }EOL;; END OF LINE CHARX;+X; CP/A FUNCTION AND VALUE DISPLACEMSNT#X; (INDIRECT THROUGH CPALOC)X; }IE. (CPALOC),YX;"CPGNFN;; GET NEXT FILE NAME'CPDFDV;; DEFAULT DRIVE (3 BYTES)2CPBUFP ;; CMD BUFF NEXT CHA }R POINTR (1 BYTE)CPEXFL ;; EXECUTE FLAG,CPEXFN ;; EXECUTE FILE NAME (16 BYTES)&)CPEXNP;; EXECUTE NOTE/POINT V }ALUES0CPFNAM!;; FILENAME BUFFER:!RUNLOC=;; CP/A LOAD/RUN ADRD)CPCMDB?;; COMMAND BUFFER (60 BYTES)NCPCMDGOX }X;bSAVEPC;; RESTORE PClX;v#X; GRAPHICS EQUATES COMPUTE 2/82CDRAW;;COMMAND DRAWTOCFILL;;COMMAND FILL# }X; EQUATES USED BY THE S: DRIVERX; AND VBLANK ROUTINESHORIZONTALUVERTICALTDRAWCOLORCOLOR0X; }X;X; MISCELLANYX; LOW HIGH ROUTINESHORIZONTALUVERTICALTDRAWCOLORCOLOR0X; 0FX;Macro LibraryX;X;Macros to handle branchingX;if =,<>,>=,<=,>,<X;and avoid branch range X;problems$X;}.X;BRANCH IF EQUAL8X;BBE L HLOC1V! `LOC1jtX;~X;BRANCH IF NOT EQUALX;BN  FLOC2! LO}C2X;$X;BRANCH IF GREATER THAN OR EQUALX; BGE  DLOC3! LOC3 X;X;BRANCH IF LESS THAN(X;2} BLT < ELOC4F! PLOC4ZdX;nX;BRANCH IF GREATER THANxX; BGT  FLOC5 DLOC5! LOC5X;}!X;BRANCH IF LESS THAN OR EQUALX; BLE  FLOC7 ELOC6LOC7! LOC6"X;,X;BRANCH ON ERROR (I/O)6X};@ BER J)>T DLOCA^! hLOCAr|X;X;Double byte add, subtract,X;incrementX;X;DOUBLE BYTE INCREMEN}TX; DINC #  HLOC8 # LOC8X;X;DOUBLE BYTE ADDX; DADD ,&Q 0 O>4 :P D Q} N O>5 X P blX;vX;DOUBLE BYTE SUBTRACTX; DSUB ;Q  S>4 P  Q  S>5  P }X;X;DOUBLE BYTE MOVE TO ADDRX; DMOVE  Q>4 P   Q>5 * P 4  Q  S>5  P b$X;DIAMOND OS Programmers KitX;(C) Copyright 1988X;REEVE SoftwareX;by Alan ReeveX;DIAMOND$ BASE}.X;8X;DIAMOND EquatesBX;L W0V W1` W2j W3t W4~ W5 W6 W7 B0 B1 }B2 B3 B4 B5 B6 B7X; INIT EXIT PARAPRNTTOGGLEZEROINSTALLICON}(MOVEICON2REMOVEICON<SHAPEICONFSETMENUPMENUCHECK ZMENUENABLE dMOUSEON nMOUSEOFF} xDEFMOUSE DODIALOGUPDATEDIALOGEVENTDIALOGRELEASEDIALOGTEXTDIALOGWINDOPEN}WINDCLOSEWINDMOVEWINDDRAW EVENTPLOTPOINTPLOTLINEPLOTBOXMOVETOSCREENMOV}EFROMSCREENCLEARSCREEN"INVERTSCREEN, MOVE6 ZERO @ SWAP!JCURSORON"TCURSOROFF#^DEFCUR}SOR$hMOVECURSOR%r ADDQUE&|MULTIPLY' DIVIDE(SWAPSCREEN)WINDCLEAR*WINDGET+SYSDRAW,}DRAGBOX-OVERLAPICON.OVERLAPWINDOW/EXECDESKTOP0INVERTTOUCH1WINDSET2WINDTITLE3WIN}DACTIVATE4BINLOAD5 MUL406FILLSCREEN7&X;0SCREENXBASE:SCREENYBASEDCLICKBASENACTIVE}BASEXBACKBUFBASEbTOTALRAMBASElSYSPTRBASE vCLICKTIMEBASEPORTBASEINTERRUPTSB}ASEEVENTTYPEBASESYSFONTBASENUMFONTSBASERESETVECBASEDRIVESBASEDEFAULTDRIVE}BASE&MOUSEVECBASE'MOUSEVECDLIBASE)XOFFSETBASE+YOFFSETBASE,MOUSESHAPEBASE-EXTR}ABASE5 DESKBASE9REZBASE; DOSTYPEBASE<*SPARTAFLAGBASE=4BANKBASE>>CMDLINEBASE?H}X;RX;DIAMOND MACROS\X;fX;INITIALIZE 0=MONO/1=COLORpX;z INIT  Q>4 PB0 Q>INIT DIAMONDX;X;E}XIT DIAMONDX; EXIT  Q>EXIT DIAMONDX; +X;PARAPRINT ADDR OF TEXT,X,Y,LINESPACING X; PARAPRNT $ Q>4} ;;ADDR OF TEXT STRING. PW58 Q>5 B PW5L Q>V PB0` PB1j PW3t PW3~ PW4 PW4 Q>4 ;;X COORD }PW1 Q>5  PW1 Q>4 ;;Y COORD PW2 Q>5  PW2 Q>4 ;;LINE SPACING PB2 Q>PARAPRNT DIAMOND }  X; TOGGLEZERO ( Q>TOGGLEZERO2 DIAMOND< F X;P 3X;INSTALLICON ICON #,X,Y,WIDTH,HEIGHT,IMAGE ADDRZ X;d INS}TALLICON n Q>4 ;;ICON #x PB0 Q>4 ;;X COORD PB1 Q>4 ;;Y COORD PB2 Q>4 ;;WIDTH PB3 Q>4 ;;HEIGHT }PB4 Q>4 ;;SHAPE ADDR PW0 Q>5  PW0 Q>INSTALLICON DIAMOND  X;" X;MOVEICON ICON #,X,Y, X;6 M}OVEICON @ Q>4 ;;ICON #J PB0T Q>4 ;;X COORD^ PB1h Q>4 ;;Y COORDr PB2| Q> DIAMOND  X; X;REMOVEICON} ICON # X; REMOVEICON Q>4 ;;ICON # PB0 Q> DIAMOND  X; X;SHAPEICON ICON #,IMAGE ADDR X; SHA}PEICON  Q>4 ;;ICON #& PB00 Q>4 ;;SHAPE ADDR: PW0D Q>5 N PW0X Q>b DIAMONDl v X; $X;SETMENU MENUBA}R ADDR,MENU TREES X; SETMENU Q>4 ;;ADDR OF MENU BAR PW0 Q>5  PW0 Q>4 ;;ADDR OF MENU STRUCTS PW}1 Q>5  PW1 Q> DIAMOND  X; 1X;MENUCHECK MENU #, ITEM #,0=NO CHECK/72=CHECK X;* MENUCHECK 4 Q>4 };;MENU # (0-7)> PB0H Q>4 ;;ITEM # (1+)R PB1\ Q>4 ;;0=NO CHECK/8=CHECKf PB2p Q> z DIAMOND  X; )X;MENUE}NABLE MENU #,ITEM #,0=ON/FF=OFF X; MENUENABLE Q>4 ;;MENU # PB0 Q>4 ;;ITEM # PB1 Q>4  PB2;;0=ON,$F}F=OFF Q> DIAMONDX; MOUSEON $Q> . DIAMOND8BX;LMOUSEOFF VQ> ` DIAMONDjtX;~!X;DEFM}OUSE ADDR OF MOUSE SHAPEX;DEFMOUSE Q>4 ;;ADDR OF MOUSE DATAPW0 Q>5  PW0Q>  DIAMONDX};.X;DODIALOG WIDTH,HEIGHT,OBJECTS,TOUCH AREASX;DODIALOG Q>4 ;;WIDTHPB0Q>4 ;;HEIGHT(PB12Q>4 ;;A}DDR OF OBJECTS<PW0F Q>5 P PW0ZQ>4 ;;ADDR OF TOUCH AREASdPW1n Q>5 x PW1Q> DIAMONDX;}X;UPDATEDIALOG OBJECT LISTX;UPDATEDIALOG  Q>4 PW7 Q>5  PW7Q> DIAMONDX;EVENTD}IALOG "Q>, DIAMOND6@X;JRELEASEDIALOG TQ>^ DIAMONDhrX;|5X;TEXTDIALOG LENGTH,STARTPOS,EXIT (0=ONLY} ON RET),2X;X (BYTEWISE),Y,BUFFER,CHAR FILTER,TERM FILTERX;TEXTDIALOG  Q>4 PB0 Q>4 PB1 Q>4 P}B4 Q>4 PB5 Q>4 PB6 Q>4 PW0 Q>5 & PW00 Q>4 :PW1D Q>5 N PW1X Q>4 bPW2l Q}>5 v PW2Q> DIAMONDX;>X;WINDOPEN CHARACTERISTICS,X,Y,WIDTH,HEIGHT,TITLE,SUBTITLE,2X; ACTUAL WID}TH,ACTUAL HEIGHT,BUF LO,BUF HIX;WINDOPEN Q>4 ;;CHARACTERISTICSPB0 Q>4 ;;XPB1 Q>4 ;;YPB2 Q>}4 ;;WIDTHPB3 Q>4 ;;HEIGHT*PB44Q>4 ;;TITLE>PW0H Q>5 R PW0\Q>4 ;;SUBTITLEfPW1p Q>5 z PW}1Q>4 ;;ACTUAL WIDTHPW2 Q>5  PW2Q>4  ;;ACTUAL HEIGHTPW3 Q>5   PW3Q>4  ;;BUFFER LO}PW4 Q>5   PW4Q>4  ;;BUFFER HIPW5 Q>5   PW5$Q>. DIAMOND8BX;LWINDCLOSE VQ>` }DIAMONDjtX;~X;WINDMOVE X,YX;WINDMOVE Q>4 ;;NEW XPB0Q>4 ;;NEW YPB1Q> DIAMONDX};X;WINDDRAW OBJECT LISTX;WINDDRAW Q>4 ;;OBJECT LIST PTRPW7 Q>5 ( PW72Q>< DIAMONDFPX;}Z EVENT dQ>n DIAMONDxX;X;PLOTPOINT X,Y,COLOR,MODEX;PLOTPOINT  Q>4 ;;XPB0 Q>4 ;;YPB}1Q>4 ;;COLORPB2Q>4 ;;MODEPB3Q> DIAMONDX;""X;PLOTLINE X,Y,X1,Y1,COLOR,MODE,X;6PLOTLIN}E @ Q>4 ;;X1JPB0T Q>4 ;;Y1^PB1h Q>4 ;;X2rPB2| Q>4 ;;Y2PB3Q>4 ;;COLORPB4Q>4 ;;MODEP}B5Q> DIAMONDX;!X;PLOTBOX X,Y,X1,Y1,COLOR,MODEX; PLOTBOX  Q>4 ;;X1PB0 Q>4 ;;Y1PB1& Q}>4 ;;X20PB2: Q>4 ;;Y2DPB3NQ>4 ;;COLORXPB4bQ>4 ;;MODElPB5vQ> DIAMONDX;CX;MOVETOSCREE}N IMAGE LO,IMAGE HI,X,Y,WIDTH,HEIGHT,CLIP X,CLIP Y,X; X OFFSET,Y OFFSETX;MOVETOSCREEN Q>4 ;;IMAGE PTR LO}PW0 Q>5  PW0Q>4 ;;IMAGE PTR HIPW1 Q>5   PW1 Q>4 ;;X PB0* Q>4 ;;Y4PB1>Q>4 ;;WI}DTHHPB2RQ>4 ;;HEIGHT\PB3fQ>4 ;;CLIP XpPB4zQ>4 ;;CLIP YPB5Q>4  ;;X OFFSETPB6Q>4  ;;Y OFFS}ETPB7Q> DIAMONDX;MOVEFROMSCREEN  Q>4 PW0 Q>5  PW0 Q>4 PW1$ Q>5 . PW1}8 Q>4 BPB0L Q>4 VPB1` Q>4 jPB2t Q>4 ~PB3 Q>4 PB4 Q>4 PB5 Q>4  PB6 Q>4  }PB7Q> DIAMONDX;CLEARSCREEN Q>PW1 PW1(Q> 2PW0< PW0F Q>4 PPB0Z Q>4 d}PB1n Q>4 xPB2 Q>4 PB3 Q>4 PB4 Q>4 PB5 Q>4 PB6 Q>4 PB7Q> DIAMOND}X;INVERTSCREEN Q>"PW1, PW16Q> @PW0J PW0T Q>4 ^PB0h Q>4 rPB1| Q>4 PB2 Q>4 }PB3 Q>4 PB4 Q>4 PB5 Q>4 PB6 Q>4 PB7Q> DIAMONDX; MOVE &Q>4 ;;SOU}RCE LO0PW0: Q>5 D PW0NQ>4 ;;DEST LOXPW2b Q>5 l PW2vQ>4 ;;SOURCE HIPW1 Q>5  PW1}Q>4 ;;DEST HIPW3 Q>5  PW3Q>4 ;;NUMBYTESPW4 Q>5  PW4Q> DIAMOND X; ZERO }Q> *PW04 PW0>Q>HPW1R PW1\Q>4 ;;LOC TO ZEROfPW2p Q>5 z PW2 Q>4 PW3 Q>5  P}W3Q>4 ;;NUMBER OF BYTESPW4 Q>5  PW4Q>  DIAMONDX; SWAP Q>4 ;;SOURCE ADDRPW0} Q>5 $ PW0. Q>4 8PW1B Q>5 L PW1VQ>4 ;;DEST ADDR`PW2j Q>5 t PW2~ Q>4 PW3 Q>5 } PW3Q>4 ;;NUMBYTESPW4 Q>5  PW4Q>! DIAMONDX;CURSORON Q>"  DIAMONDX;(}CURSOROFF 2Q>#< DIAMONDFPX;ZDEFCURSOR dQ>4 ;;BIT PATTERNnPB0xQ>4 ;;HEIGHTPB1Q>4 ;;FLAS}H RATEPB2Q>$ DIAMONDX;MOVECURSOR Q>4 ;;NEW XPB0Q>4 ;;NEW YPB1Q>% DIAMOND}X;" ADDQUE ,Q>4 ;;VBI ADDR6PW7@ Q>5 J PW7TQ>&^ DIAMONDhrX;|MULTIPLY Q>4 ;;MULTIPLIC}AND 1PW5 Q>5  PW5Q>4 ;;MULTIPLICAND 2PW6 Q>5  PW6Q>' DIAMONDX; DIVIDE  }Q>4 ;;NUMBER PW4 Q>5 & PW40 Q>4 ;;DIVISOR: PW5D Q>5 N PW5X Q>(b DIAMONDl v X; SWAPSCRE}EN Q>4  PW0 Q>5  PW0 Q>4  PW1 Q>5  PW1 Q>4  PB0 Q>4  PB1! Q>4  !PB2! Q}>4  !PB3*! Q>4 4!PB4>! Q>4 H!PB5R! Q>4  \!PB6f! Q>4  p!PB7z!Q>)! DIAMOND!!X;!WINDCLEAR !Q>}*! DIAMOND!!X;! WINDGET !Q>+! DIAMOND!!X;" SYSDRAW " Q>4 "PW0$" Q>5 ." PW08" Q>4 B"P}B1L" Q>4 V"PB2`" Q>4 j"PB3t"Q>,~" DIAMOND""X;" DRAGBOX " Q>4 "PB0" Q>4 "PB1" Q>4 "PB2"} Q>4 "PB3"Q>-# DIAMOND ##X;#OVERLAPICON (# Q>4 2#PB0<# Q>4 F#PB1P# Q>4 Z#PB2d# Q>4 n#PB3x#}Q>.# DIAMOND##X;#OVERLAPWINDOW # Q>4 #PB0# Q>4 #PB1# Q>4 #PB2# Q>4 #PB3#Q>/$ DIAM}OND$$X;"$EXECDESKTOP ,$Q>06$ DIAMOND@$J$X;T$INVERTTOUCH ^$Q>1h$ DIAMONDr$|$X;#PB3#Q>/$ DIAMfB` LL] Ҫ p&L}L8&mqLL8mLLLіL䖭}80m8 m |9} !L1LZ}L L &͐&) L `@L1LZYB` LL] Ҫx))}))LLLL˖80m}8 m !L1LZL L &}͐&) L `@L1LZL L &/18NKEREDTYPSFLA##ĠӠӠΛ##͠ } W +AR@1-@@W(!Diamond GOS(tm) DOS ConfigurationC-@@#( } DOS Types5-@@C( ,-@@,(1) DOS 2.0 (Other)#-@@#( 2) DOS XE(& }-@@&( 3) SpartaDOS-AR2+-@@+(Select DOS type:<.@.@ }@K:F)@K6-&@HP!! @)!@@pSAR@U(Z@ }d{-@@1(Please Insert Disk thatX("CONFIG.OS should be written to andj-@@{( Press }n##@@K:x$)@$AUA @ A AR,, }@@ D:CONFIG.OS)*@@)*@@'"@6-@'6-' }"@6-@8'6-'"@6-@8'6-@*@*@BB }@P(,(!DOS Configuration Complete...NoteP(that Diamond will be configuredG)(!for an ST Mouse in P }ort 1 and theG(default 48K Memory Driver2(Error During Write!(@2 AD:DOSCONFG.BAS z Reboot LwError During Write!(@2 AD:DOSCONFG.BASn Port 1 and theG(default 48K Memory Dri$ 6ehJ0         B45` `Lʖ ҪL)}D1:',BDEJK VLa `Amt s- }BJKrDE VL2yBDEHI V䭟E L2&& >L- } >LͪМͫДͬЌ Ȣ i iL B V i i- } 8`i i ' iyi ` ' iyicdi- }ib `00 Desk Configure 0$0 Help  Load Mouse Driver Load Memory Driver- } Set Up Mouse ------------------- Save Configuration Quit 1(1p(V1( f1-}o1`z1(1(Y0D11PdSelect Mouse DriverSelect Memory DriverMOUSE DRVMEMORY DRIV1Q2 Configurat-}ionJoystickClick TimePort 0 Port 1 8 10 12 15 20OK      (0 08<@(0<@08<@8@<@@H<@HP$}M65EXITDMND.BAS - This Basic programshows how to dump Diamond out of thesystem from Basic. Can be used whena Basic progr9?}am is too large torun under Diamond or with Basic XEto allow access to the Extend mode.**********************************9@}*** Programming Notes One thing that we would like tomake clear in regards to programmingDiamond is that Mac/69A}5 is notREQUIRED. Diamond GOS was writtenusing Mac/65 as Assembler languagewas needed for gain complete controlof the sys9B}tem, however otherlanguages can be used provided thatthey have some tie in with machinelanguage and the ability to POKE or9C}store numbers into specificlocations. Atari Basic can do this soDiamond can be programmed with AtariBasic. As Diamond mat9D}ures we hopesimilar libraries will be created fordoing this with other languages. Theincluded programming informationexpl9E}ains what to do to programDiamond and the included files arefor use with Mac/65 only.************************************9F}* Compatibility with non-Diamond software We have made every attemptpossibile at providing maximumsoft9G}ware compatibility with existingnon-Diamond based programs andcartridges. Programs that do not loadunder Diamond are doing9H} one of twothings...loading over our loadroutines (rare!) or assuming too much(e.g. assuming that a graphics mode 0screen9I} is present). In addition tothis some software may load up, buthave garbage in certain areas of thescreen display. This is9J} because theprogram assumes that while it isloaded memory will be zeroed. Thereare many possibilities for 'fixing'such pr9}X;Diamond File SelectorX;X;Receives:X;X; W0-3 Char Dir PathX; W1-Default Filename$X; W2-Custom Tit=L}le.$X; W3-Buffer for return filename8X;B%BIGBUTTON ?=======L ?=======V ?=====M}===` <======= == == ==Y}= =ADrive AA== == == == =X;  FTITLE610 = = = = = = = = = = = = == X;* FTITLE94 =Z} AAA= > ABA= H ACA= R ADA= \ AEA= f AFA= p AGAz X; FSELTOUCH P=h=H=P P=h=X=`=[} @==8=@  =8=@=H  =8=H=P  =8=P=X  =8=X=`  =8=`=h  =8=h=p  =8=p=x =\} =8=x=   =8==   =8==  <=@=8=@$  <=@==.  t=x=L=T8  t=x=V=^B  t=x=`=hL  t=x==]}j=rV  t=x=t=|`  t=x=~=j  t=x==t  ~ X; LETTERS 3 =============== =^}3 =============== X; EXITCHARS 3 =============== 3 ==_}============== X; DIRPATH AD1:*.*A= DIRBUF NUMFILES  FILEPTR  DIRPO=`}S  TEMPNAME TEMPEXT TEMPBUF( PATH2 X;< FILESELECTF QW2P PFSELOBJ1Z QW2d PFSELOBJ1n =a}%>x FILESEL2Q@W07 PPATH8 3 )> HFILESEL2 %> FILESEL3Q@W17 PTEMPNAME8 R> ;' HU1 Q>_ U1=b} PFTITLE38 3 )> HFILESEL3 FILESEL31" Q@W17, PTEMPNAME86 R> ;'@ HU2J Q>_T U2^ PFTITLE38h 3=c}r )> | HFILESEL31 QW3 PFILEPTR QW3 PFILEPTR QDOSTYPE R>& HNOUNDERSCORE QLETTERS L> =d}PLETTERS NOUNDERSCORE Q>4FTITLE9 PW0 Q>5FTITLE9 PW0 $>& FILESEL40 QDRIVES9: R> 0;'D FDISABL=e}EN %>X ,b Al O> A;'v P@W07 !DONEDRIVENUM DISABLE %> Q> ;' P@W07 DONEDRIVENUM DADD W0= 2 =f}(> HFILESEL4 'DODIALOG $==FSELOBJ=FSELTOUCH READDIR  CALCDIRPOS FSELLOOP EVENTDIALOG  QB0 =g}BE FSELEXIT* R>4 BE FSELEXIT> R>H BE FSELEXITR R>\ BE EDITFNAMEf R> p BLE DIRFNAMEz R> BE =q}B'DOS SYSB*+DUP SYSB)UIOMAC M65B~SYSEQU M65B LIBRARY M65BKDMACROS M65BKOALA DRVBJOYSTICKDRVB DOSCONFGBASBREBOOT ACCCCONFIG OS BCONFIGURAPPBMEMORYXLDRIB MEMORYXEDRIB,(CLICKME TXTB?KFILESEL M65B,CONFIGURM65B OSSTODOSBASB DIABASICBASFONTCONVBASBSTMOUSE DRVBTOUCHTABDRVBDIAMOND SDXCCONFIG OS BCONFIG OS BACCMAKERAPPB SKELETONM65BSKELETONOBJCALLDOS OBJBEXITDMNDBASRUNCART OBJCALLDOS ACCRUNCART ACCTEST APPTEST ACCDECDIR R> BE INCDIR R> BLE NEWDRIVE !FSELLOOP EDITFNAME;EDIT FILENAME Q>4TEMPNAME PW0 Q>5T=r}EMPNAME PW0 %> EXTQ@W07 R> ;' HNOSPACE1$)>.HEXT8 NOSPACEB3L)>VBGT EDITEXT` !EDIT=s}NAMEjEDITt%>~ Q> ;'EDIT1PTEMPNAME83)>  HEDIT1 Q> _;'%>E1PFTITLE383)>HE1=t}E2PFTITLE38 3)> HE2(UPDATEDIALOG FILEOBJ2%>< EDITNAMEFQ>;;. IS VALIDPPEXITCHARSZQ=u}>dPB0n'B1xQ>PB4Q>PB5Q>@PB6Q>4TEMPNAMEPW0Q>5TEMPNAME PW0Q>4LETTERSP=v}W1Q>5LETTERS PW1Q>4EXITCHARSPW2Q>5EXITCHARS" PW2,Q>TEXTDIALOG6 DIAMOND@QB0;;RETURN REASON=w}JR>}T BE EDIT^R>h BE DONErR>| FDONE%> EDITEXTQ>;;. IS NOT VALIDPEXITCHARSQ>P=x}B0;CS>PB1Q>PB4Q>PB5Q>@PB6&Q>4TEMPEXT0PW0:Q>5TEMPEXTD PW0NQ>4LETTER=y}SXPW1bQ>5LETTERSl PW1vQ>4EXITCHARSPW2Q>5EXITCHARS PW2Q>TEXTDIALOG DIAMONDQB0R>}=z} BE EDITDONE !FSELLOOPDIRFNAME;USE DIR NAME;QB0S>;;CALC DIR FNAME # , ODIRPOS  RNUMFILES*={}BGE FSELLOOP4PW5>Q>H PW5RDMOVE  =W6\Q>MULTIPLYf DIAMONDpDADD W7=DIRBUFzQB15$>%=|}> DIRFNAME1 Q@W77PTEMPNAME9 R> ;'HDIRFNAME2Q>_ DIRFNAME2PFTITLE3923(>HDIRFNAM=}}E1 DIRFNAME3$ Q@W77.PTEMPNAME98 R> ;'BHDIRFNAME4LQ>_V DIRFNAME4`PFTITLE39j2t3~(> HDIRFNAME=~}3UPDATEDIALOG FILEOBJ7R>BN FSELLOOPQ>PB0 !FSELEXITDECDIR;SCROLL UP IN DIR QDIRPOS=}BE FSELLOOP UNMARK "DIRPOS X;DRAW DIRECTORY CALCDIRPOS !FSELLOOP(INCDIR;SCROLL DOWN DIR2,< QDIRPOSF=}O>P RNUMFILESZBE FSELLOOPd UNMARKn #DIRPOSxX;DRAW DIRECTORY CALCDIRPOS !FSELLOOPNEWDRIVE;READ N=}EW DIR;QB0S>> QDRIVES9 R> 0;'BE FSELLOOP&DEFAULTDRIVE READDIR, Q> A;'ODEFAULTDRIVE=}PFTITLE6 "UPDATEDIALOG DRIVEOBJ, CALCDIRPOS6 !FSELLOOP@ FSELEXITJ QFILEPTRTPW0^QFILEPTRh PW0=}rQB0|R>FFSELEXIT1%> Q> D;' P@W073$DEFAULTDRIVE QDRIVES9 P@W073 Q> :;' P@W073=}$>FNQTEMPNAME9 R> ;'& FENDFN0 P@W07:3D2N(>XHFNb ENDFNl Q> .;'v P@W073$> EXTENDER=}QTEMPNAME9 R> ;' FENDEXT P@W0732(>  HEXTENDER ENDEXTQ>P@W07;;C/R FOR END !FSELEXIT2=} FSELEXIT1 %>*Q>4P@W07;;NULL STRING> FSELEXIT2HRELEASEDIALOG R:\X;f READDIRpQ>z PNUMFILES PD=}IRPOS, Q> A;'ODEFAULTDRIVEPFTITLE6 UPDATEDIALOG DRIVEOBJ,%DEFAULTDRIVE QDRIVES8PDIRPATH=}OPEN ===DIRPATH Q>4DIRBUFPW0 Q>5DIRBUF PW0 NEXTENTRY$$>;;INPUT NAME.Q>8PB9BQ>4T=}EMPBUFLPD9VQ>5TEMPBUF`PE9jQ>tPH9~Q>PI9 VX;MOVE TEMPBUF TO (W0)QTEMPBUF R> F;'=}BE DIREOFX;FOLDER CHECKQTEMPBUF ;;MATCH PATH RPATHHNEXTENTRYQTEMPBUF  RPATHHNEXTENTRY Q=}TEMPBUF  RPATHHNEXTENTRY(%>2 Q> ;'< P@W07F3P$>Z READDIR1d QTEMPBUF9n P@W07x32(>  H=}READDIR1A P@W07 #NUMFILESDADD W0= !NEXTENTRY DIREOF CLOSE $>%> DIREOF2 Q> ;' =}DIREOF1 P@W07"3,)> 6 HDIREOF1@Q> J P@W07TDADD W0= ^%>h2r(> | HDIREOF2DSUB W0=Q>=}? P@W07:X; UNMARK, QDIRPOSO> PW5Q> PW5DMOVE  =W6Q>MULTIPLY DIAMOND& Q=}> ;'0%>: P@W77D:NX;XCALCDIRPOSb QDIRPOSlPW5vQ> PW5DMOVE  =W6Q>MULTIPLY DIAMOND=}DADD W7=DIRBUFQW7PDIROBJ QW7PDIROBJDADD W7=Q>? P@W77UPDATEDIALOG DIROBJ =}:X; FILESELECT *X;4 Q>4 >PW0H Q>5 R PW0\ Q>4 fPW1p Q>5 z PW1 Q>4 PW2 Q>5 =} PW2 Q>4 PW3 Q>5  PW3 FILESELECTX;X;fPW1p Q>5 z PW1 Q>4 PW2 Q>5 <IX;Configuration UtilityX;by Alan ReeveX;EIX;>D:SYSEQU.M65$>D:IOMAC.M65.>D:LIBRARY.M658>DA}:DMACROS.M65BX;LVX;`>D:FILESEL.M65jX;t0~X;MENU A Desk A= A Configure A==X;X;A}MENU TREE (TWO MENUS)X;MENUTREE MENU1=MENU2X;MENU1 A Help AX; MENU2 ========A}) ==A Load Mouse Driver A=== ) ==A Load Memory DriverA===) ==A Set Up Mouse A===)A} ==A-------------------A===() ==A Save ConfigurationA===2) ==A Quit A===<X;A}F X;DIALOG BOX FOR SET UP MOUSEPX;Z OPTIONSd n SELECT1==(x = SELECT2=p=( =X; CONFIGOBA}J  CONFIG0=(=  = CONFIG1== = CONFIG2=`= = CONFIG3==( = CONFIA}G4==(  " BIGBUTTON, =Y==6 @ CONFIG6=P=dJ T ^X;h)SELECTMOUSE ASelect Mouse DrivA}erA=r+SELECTMEMORY ASelect Memory DriverA=|MOUSENAME AMOUSE AMOUSEEXT ADRVAMEMORYNAME AMEMORY AMEA}MORYEXT ADRIA FNAME%CONFIG0 = =AConfigurationA=CONFIG1 AJoystickA=CONFIG2 AClick TimeA=%CONFA}IG3 APort 0A= =APort 1A=8CONFIG4 A 8A= =A10A= =A12A= =A15A= =A20A=CONFIG6 AOKA=X;SELECT1 =A} ==)SELECT2 = == == == ==X;CONFIGTOUCH = =(=0& = =0=80 <=@=(=0: <=@=A}0=8D <=@=8=@N <=@=@=HX <=@=H=Pb $=<=d=ll vX;X;HELP DIALOG BOXX; HELPOBJ  HELA}PTEXT== =X; HELPTOUCH ====X; HELPTEXT7 A A===ADiamond(tm) GOS ConfigurationA= A}= 6 ==ALoad Mouse DriverA===A - Load andA= ! A Activate Mouse DriverA= : ==ALoad Memory DriverA==A}=A - Load MemoryA=  A DriverA= 7 ==ASet Mouse PortA===A - Select MouseA= * A Port and ClickTimeA=A} 43 ==ASave ConfigurationA===A - SaveA= >& A Mouse/Memory ConfigurationA= H A and RebootA= R8 ==AQA}uitA===A - Exit to DeskTop withoutA= \ A Saving ConfigurationA=fX;pTEMPPORT zTEMPCLICKTIME  CLICKTA}IMES = = ==CONFIGFILE X; CONFIGURE"QPORT;;READ CURRENT MOUSE PORTPTEMPPORT;;SAVE ITT??Q>A}$PSELECT18;;AND PUT IN DIALOG BOXCONFIGURE0 INIT ;;INITIALIZE DIAMOND*SETMENU MENU=MENUTREE;;SET MENU BARA} -MENUENABLE ==;;DISABLE DASHED LINE WAIT EVENT ;;POLL EVENT HANDLER$ $QEVENTTYPE;;CHECK FOR MENU EVENT. R>A}8 HWAITB %QEVENTTYPE;;WAS HELP SELECTED?L HWAIT1V QEVENTTYPE` R>j BE HELP;;YES, GOTO HELPt !WAIT~ WA}AIT1 R> HWAIT QEVENTTYPE R> *BE LOADMOUSE;;LOADMOUSE WAS SELECTED R> -BE LOADMEMORY;;LOAD MEMORYA} WAS SELECTED R> BE SETUPMOUSE R> 'BE SAVECONFIG;;SAVE CONFIGURATION R> BN WAIT EXIT ;;QUIT TO A}DESKTOP EXECDESKTOP  X;( HELP;HELP DIALOG BOX2 6DODIALOG &==HELPOBJ=HELPTOUCH;;DO DIALOG BOX< .EVENTDIALOG A};;WAIT FOR FIRST DIALOG EVENTF #RELEASEDIALOG ;;AND WE'RE DONEP !WAITZ X;d LOADMOUSEn KFILESELECT MOUSEEXT=MOUSENAA}ME=SELECTMOUSE=FNAME;;CALL FILESELECTORx QFNAME;;WAS A FILE SELECTED? R> BE WAIT QINTERRUPTS 5 Q>;;YES A}SO LOAD MOUSE P;;SHUT OFF INTERRUPTS PINTERRUPTS PB0;;DIAMOND BASED FILE "Q>4FNAME;;POINT W0 TO FILENAME PW0A} Q>5FNAME PW0 Q>BINLOAD;;LOAD IT! DIAMOND EXIT ;;EXIT ENVIRONMENT 8!CONFIGURE0;;RERUN PROGRAM WITH NEW DA}RIVER INSTALLED" X;, LOADMEMORY6 NFILESELECT MEMORYEXT=MEMORYNAME=SELECTMEMORY=FNAME;;CALL FILESELECTOR@ QFNAME;;WA}AS A NAME SELECTEDJ R>T BE WAIT^ Q>;;DIAMOND FILEh PB0r "Q>4FNAME;;POINT W0 TO FILENAME| PW0 Q>5FNAME PWA}0 Q>BINLOAD;;LOAD IT DIAMOND KMENUENABLE ==;;DISABLE QUIT NOW THAT NEW MEMORY DRIVER IS INTACT !WAIT A}X; SETUPMOUSE >DODIALOG =x=CONFIGOBJ=CONFIGTOUCH;;CREATE DIALOG BOX CONFIGURE1 3UPDATEDIALOG OPTIONS;;UPDATA}E SELECTED OPTIONS !EVENTDIALOG ;;WAIT FOR EVENT QB0;;GET EVENT TYPE R> BGE CONFIGUREEXIT R>& BGE SETCA}LICKTIME0 !PTEMPPORT;;SET NEW MOUSE PORT: Q>;;CLEAR OLD OPTIONSD PSELECT1N PSELECT1X QTEMPPORT;;GET NEW PORTb TA}?l ?v $Q>;;AND ENABLE IT IN DIALOG BOX PSELECT18 !CONFIGURE1 SETCLICKTIME ;;;GET NEW CLICKTIME S> > Q>A};;CLEAR OLD CLICKTIME PSELECT2 PSELECT2 PSELECT2 PSELECT2 PSELECT2 A ? QCLICKTIMES8 PTEA}MPCLICKTIME A* T?4 ?> Q>;;SAVE NEW CLICKTIMEH PSELECT28R !CONFIGURE1\ CONFIGUREEXITf 'RELEASEDIALOG ;;RELEASE A}DIALOG BOXp !WAITz X; SAVECONFIG &QTEMPCLICKTIME;;PLUG IN NEW VALUES PCLICKTIME QTEMPPORT PPORT QINTERRUPA}TS 5 Q> P PINTERRUPTS :OPEN ===AD:CONFIG.OSA;;SAVE NEW CONFIG OS FILE BER CONFIGUREERR BPUT A}=CLICKTIME=BPUT =DOSTYPE=BPUT =CONFIGFILE=BPUT =MOUSEVEC=$BPUT ==.BPUT =A}TOTALRAM=8BPUT =6=BBPUT =R=LBPUT =n=VBPUT ==` CLOSE j7t.!w;;RA}EBOOT SO NEW MEMORY DRIVER IS ACTIVE~CONFIGUREERR7PINTERRUPTSPԦ !WAITX;IX;EIX; A}CONFIGUREConfiguration UtilityX;by Alan ReeveX;EIX;>D:SYSEQU.M65$>D:IOMAC.M65.>D:LIBRARY.M658>D@ HI VB66 BnDEHI V BDEHI V B VhLwhL_3#3??,j  U(IOT AUAU@d OSS A+ TO ATARI DOS 2E}.0SCONVERTER(THIS PROGRAM TAKES AN OSS2A+ BINARY LOAD FILE AND<CONVERTS IT TO LOAD WITHFATARIE} DOSPZBy Alan D. Reeved" +A AS"(n,,($ OSS A+ TO ATARI DOS 2.0S CONVERTERx ( ( (E};@ ,;@ ,"(ENTER INPUT FILENAME ";;7@<@,4:)7@<@,4:A`R;E}@ ,*67@<@,.D:R67@<@,.7@<@, 6._ @@-)@E}:)@G)@T)@_@!!"AU*"AUA#(#( IS NOT A BINARY FILE.E}INPUT IS M.L.#(ENTER OUTPUT FILENAME #;;7@<@,4:)7@<@,4:A567@E}<@,.D567@<@,.:++67@<@,.7@<@,,READ FILE AND WRITE FILE6 @E}@@ @@J AT)@*@^ A@h&O*@E}AU)*@AU<*@A$O*@@C*@A%)*@@6*@E}C*@@@((DONE !!D:OSSTODOS.CNVA%)*@@6*@DT:;$:LINBYTWWWWWWWWBBBBBBBBFUNCTIODIAMONA6@I} @I}B!!DIAMOND Atari Basic Library!!Use this to program Diamond with Atari Basic with ease""All labelI}s referenced in the""Programmer's manual are used""here...refer to DIABASIC.TXT!!for additional information. I} B,6-6- ,INITIALIZE"-@A "HOLD6-@ EXIT/uI}0u6-A6 B1u " 2u6-%@ B3u6-By$y446-?:A6<<<<<<<<<<<D:LIBRARY.M65>D:DMACROS.M65$X;./8X;B A Call DOS j }A;;10 Byte NameL ENDACC;;End of AccessoryV ` RUNACC;;Run AddressjX;tX;ACCESSORY VARIABLES~X; RUNACC: j }ENDACCX;SKELETON for Desk AccessoriesX;EIX;>D:LIBRARY.M65>D:DMACROS.M65$X;./8X;B A Call DOS h/0 Call DOS 00`esk AccessoriesX;EIX;>D:LIBRARY.M65>D:DMACROS.M65$X;./8X;B A Call DOS lLLLLLL̖45LJJ)Hb}  EXIT DIAMOND!!THIS ROUTINE CLEARS DIAMOND(FROM MEMORY AND RESTORES2DOSVEC TOv} POINT TO DOS<F4-@0@%F:By%,4 PAA`Z +D:EXITDMND.Bv}AS  EXIT DIAMOND!!THIS ROUTINE CLEARS DIAMOND(FROM MEMORY AND RESTORES2DOSVEC TOtL L6L6L6L6LLCj: Lb}LLLLϖLϖ480m8 m !b}Le+`T` ` $͐$) ` `Hb}B,HJJJJ)ff55hh@b}w:^@bӒVӍ LCJJJJ) )? @LCL b}LyJJJJ) )? @LyL LLL8恭b}ɀi.@慭ɀi @L{`ӍeeŔL3ŕL36 b}8吪8呅 LJJJJ) )? @LL/L3L3c0ƔILӱb} ӥLLi(i恭ɀi.@ƐLi(iƕƓL`Pb}OLL䑥PL?n LIL䑠L -ӱ ӥL䑠L b} -ӥL䑠㒙.L -ӱ ӱ -ӥ!L -ӱ -b}LPL -өLr/L -ӱ -ӱ -ӥLb}LCJJJJ) )? @LCL `I